--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / docs / DocsPage.vue
Displaying Raw • Download
meshchatx/src/frontend/components/docs/DocsPage.vue 7d7cd7d48701e74ab38cef0db1eca1b0cd23cf87 (7d7cd7d4) Text, 41.91 KB
Tb4b4b4<Tff7b72templateTb4b4b4>
T8b949e<!-- eslint-disable vue/no-v-html -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col h-full bg-slate-50 dark:bg-zinc-950 overflow-hidden"Tb4b4b4>
T8b949e<!-- Header -->
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"p-2 md:p-3 border-b border-gray-200 dark:border-zinc-800 bg-white dark:bg-zinc-900 flex items-center gap-4 z-30"
Tb4b4b4>
T8b949e<!-- Title Section -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center space-x-3 shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"hidden md:block p-2 bg-blue-100 dark:bg-blue-900/30 rounded-lg"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"book-open-variant"
Te6edf3classTff7b72=Ta5d6ff"w-5 h-5 text-blue-600 dark:text-blue-400"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72h1 Te6edf3classTff7b72=Ta5d6ff"text-xs md:text-sm font-bold text-gray-900 dark:text-zinc-100"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"docs.title"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h1Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3has_meshchatx_docsTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"hidden md:flex items-center text-[10px] text-gray-500"
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"w-2 h-2 rounded-full bg-green-500 mr-1.5"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Ready
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Search & Navigation (Desktop) -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"hidden lg:flex flex-1 items-center gap-4 max-w-3xl"Tb4b4b4>
T8b949e<!-- Tabs -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex bg-gray-100 dark:bg-zinc-800 p-0.5 rounded-lg shrink-0"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"px-3 py-1 text-[10px] font-bold uppercase tracking-wider rounded-md transition-all"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3activeTab Tff7b72=== Ta5d6ff'meshchatx'
Tff7b72? Ta5d6ff'bg-white dark:bg-zinc-700 text-blue-600 dark:text-blue-400 shadow-sm'
Tff7b72: Ta5d6ff'text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72= Ta5d6ff'meshchatx'Ta5d6ff"
Tb4b4b4>
MeshChatX
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"px-3 py-1 text-[10px] font-bold uppercase tracking-wider rounded-md transition-all"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3activeTab Tff7b72=== Ta5d6ff'reticulum'
Tff7b72? Ta5d6ff'bg-white dark:bg-zinc-700 text-blue-600 dark:text-blue-400 shadow-sm'
Tff7b72: Ta5d6ff'text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72= Ta5d6ff'reticulum'Ta5d6ff"
Tb4b4b4>
Reticulum
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Search Input -->
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3has_meshchatx_docsTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"relative flex-1"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 left-0 pl-2.5 flex items-center pointer-events-none"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"magnify" Te6edf3classTff7b72=Ta5d6ff"h-3.5 w-3.5 text-gray-400" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3searchQueryTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"block w-full pl-8 pr-8 py-1.5 border border-gray-200 dark:border-zinc-700 rounded-lg bg-gray-50 dark:bg-zinc-800 text-gray-900 dark:text-zinc-100 text-[11px] focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-all"
Te6edf3placeholderTff7b72=Ta5d6ff"Search documentation..."
Tb4b4b4@Te6edf3inputTff7b72=Ta5d6ff"Te6edf3debounceSearchTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isSearchingTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 right-0 pr-2.5 flex items-center"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"loading" Te6edf3classTff7b72=Ta5d6ff"h-3 w-3 text-gray-400 animate-spin" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3searchQueryTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 right-0 pr-2.5 flex items-center"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3clearSearchTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"close"
Te6edf3classTff7b72=Ta5d6ff"h-3 w-3 text-gray-400 hover:text-gray-600 dark:hover:text-zinc-200 cursor-pointer"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Actions Section -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center space-x-1 md:space-x-2 ml-auto shrink-0"Tb4b4b4>
T8b949e<!-- Version Selector -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72=== Ta5d6ff'reticulum' Tff7b72&& Tb4b4b4(Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3versionsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4)Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"relative"
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-click-outsideTff7b72=Ta5d6ff"Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Te6edf3showVersions Tff7b72= Tff7b72falseTb4b4b4)Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-1.5 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800 rounded-lg transition-colors flex items-center gap-1.5"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{ Ta5d6ff'bg-gray-100 dark:bg-zinc-800'Tff7b72: Te6edf3showVersions Tb4b4b4}Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3showVersions Tff7b72= Tff7b72!Te6edf3showVersionsTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"history" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4 md:w-5 md:h-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"hidden xl:inline text-[10px] font-bold uppercase"Tb4b4b4>Tff7b72{{
Te6edf3statusTb4b4b4.Te6edf3current_version Tff7b72|| Ta5d6ff"Default"
Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3showVersionsTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute right-0 mt-2 w-48 bg-white dark:bg-zinc-800 border border-gray-200 dark:border-zinc-700 rounded-xl shadow-xl z-50 overflow-hidden"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"p-2 border-b border-gray-100 dark:border-zinc-700 bg-gray-50/50 dark:bg-zinc-800/50"
Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold text-gray-400 uppercase tracking-wider"Tb4b4b4>VersionsTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"max-h-64 overflow-y-auto py-1"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3version Tff7b72in Te6edf3statusTb4b4b4.Te6edf3versionsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3versionTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full px-4 py-2 text-left text-[11px] hover:bg-blue-50 dark:hover:bg-blue-900/20 transition-colors flex items-center justify-between"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3statusTb4b4b4.Te6edf3current_version Tff7b72=== Te6edf3version
Tff7b72? Ta5d6ff'text-blue-600 dark:text-blue-400 font-bold'
Tff7b72: Ta5d6ff'text-gray-700 dark:text-zinc-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3switchVersionTb4b4b4(Te6edf3versionTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3version Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3current_version Tff7b72=== Te6edf3versionTa5d6ff"
Te6edf3icon-nameTff7b72=Ta5d6ff"check"
Te6edf3classTff7b72=Ta5d6ff"w-3.5 h-3.5"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3versionsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"px-4 py-3 text-center text-gray-500 text-[10px]"
Tb4b4b4>
No versions available
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"p-2 border-t border-gray-100 dark:border-zinc-700 bg-gray-50/50 dark:bg-zinc-800/50"
Tb4b4b4>
Tb4b4b4<Tff7b72label
Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-center gap-2 px-3 py-1.5 bg-blue-600 hover:bg-blue-700 text-white rounded-lg cursor-pointer transition-colors text-[10px] font-bold uppercase"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"upload" Te6edf3classTff7b72=Ta5d6ff"w-3.5 h-3.5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Upload ZIPTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72input Te6edf3typeTff7b72=Ta5d6ff"file" Te6edf3acceptTff7b72=Ta5d6ff".zip" Te6edf3classTff7b72=Ta5d6ff"hidden" Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3handleZipUploadTa5d6ff" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Language Selector -->
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72=== Ta5d6ff'reticulum' Tff7b72&& Te6edf3statusTb4b4b4.Te6edf3has_docsTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"relative"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-click-outsideTff7b72=Ta5d6ff"Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4(Te6edf3showLanguages Tff7b72= Tff7b72falseTb4b4b4)Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-1.5 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800 rounded-lg transition-colors flex items-center gap-1.5"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{ Ta5d6ff'bg-gray-100 dark:bg-zinc-800'Tff7b72: Te6edf3showLanguages Tb4b4b4}Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3showLanguages Tff7b72= Tff7b72!Te6edf3showLanguagesTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"translate" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4 md:w-5 md:h-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"hidden xl:inline text-[10px] font-bold uppercase"Tb4b4b4>Tff7b72{{ Te6edf3currentLang Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3showLanguagesTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute right-0 top-full mt-1 bg-white dark:bg-zinc-900 border border-gray-200 dark:border-zinc-800 rounded-lg shadow-xl p-1 min-w-[120px] z-20"
Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3lang Tff7b72in Te6edf3allLanguagesTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3langTb4b4b4.Te6edf3codeTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex items-center w-full px-3 py-2 text-[10px] font-bold uppercase hover:bg-gray-50 dark:hover:bg-zinc-800 rounded-md transition-colors"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3langTb4b4b4.Te6edf3code Tff7b72=== Te6edf3currentLang Tff7b72? Ta5d6ff'text-blue-500' Tff7b72: Ta5d6ff'text-gray-600 dark:text-zinc-400'Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3setLanguageTb4b4b4(Te6edf3langTb4b4b4.Te6edf3codeTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3name Tff7b72}} (Tff7b72{{ Te6edf3langTb4b4b4.Te6edf3code Tff7b72}})
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Export Button -->
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3has_meshchatx_docsTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-1.5 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800 rounded-lg transition-colors"
Te6edf3titleTff7b72=Ta5d6ff"Export all documentation as ZIP"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3exportDocsTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"download" Te6edf3classTff7b72=Ta5d6ff"w-4 h-4 md:w-5 md:h-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
T8b949e<!-- Update Button -->
Tb4b4b4<Tff7b72button
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'downloading' Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'extracting'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-1.5 text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-800 rounded-lg transition-colors disabled:opacity-50"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff'docs.btn_update'Tb4b4b4) Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff'docs.btn_download'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3updateDocsTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"
Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'downloading' Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'extracting' Tff7b72? Ta5d6ff'loading' Tff7b72: Ta5d6ff'refresh'
Ta5d6ff"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4{ Ta5d6ff'animate-spin'Tff7b72: Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'downloading' Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'extracting' Tb4b4b4}Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-4 h-4 md:w-5 md:h-5"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
T8b949e<!-- Open External -->
Tb4b4b4<Tff7b72a
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3has_docsTa5d6ff"
Tb4b4b4:Te6edf3hrefTff7b72=Ta5d6ff"Te6edf3localDocsUrlTa5d6ff"
Te6edf3targetTff7b72=Ta5d6ff"_blank"
Te6edf3classTff7b72=Ta5d6ff"hidden sm:flex items-center px-2.5 py-1.5 bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-lg hover:opacity-90 transition-opacity font-bold text-[10px] shadow-sm"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"open-in-new" Te6edf3classTff7b72=Ta5d6ff"w-3 h-3 mr-1.5" Tb4b4b4/Tb4b4b4>
Open
Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Secondary Navigation (Mobile/Tablet) -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Tb4b4b4(Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3has_meshchatx_docsTb4b4b4) Tff7b72&& Tff7b72!Te6edf3isSearchingTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"lg:hidden px-3 py-2 bg-white dark:bg-zinc-900 border-b border-gray-200 dark:border-zinc-800 z-10"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col md:flex-row items-center gap-2 w-full"Tb4b4b4>
T8b949e<!-- Tabs -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex bg-gray-100 dark:bg-zinc-800 p-0.5 rounded-lg w-full md:w-auto"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"flex-1 md:flex-none px-4 py-1.5 text-[10px] font-bold uppercase tracking-wider rounded-md transition-all"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3activeTab Tff7b72=== Ta5d6ff'meshchatx'
Tff7b72? Ta5d6ff'bg-white dark:bg-zinc-700 text-blue-600 dark:text-blue-400 shadow-sm'
Tff7b72: Ta5d6ff'text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72= Ta5d6ff'meshchatx'Ta5d6ff"
Tb4b4b4>
MeshChatX
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"flex-1 md:flex-none px-4 py-1.5 text-[10px] font-bold uppercase tracking-wider rounded-md transition-all"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3activeTab Tff7b72=== Ta5d6ff'reticulum'
Tff7b72? Ta5d6ff'bg-white dark:bg-zinc-700 text-blue-600 dark:text-blue-400 shadow-sm'
Tff7b72: Ta5d6ff'text-gray-500 hover:text-gray-700 dark:hover:text-zinc-300'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72= Ta5d6ff'reticulum'Ta5d6ff"
Tb4b4b4>
Reticulum
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Search Input -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative w-full"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"magnify" Te6edf3classTff7b72=Ta5d6ff"h-3.5 w-3.5 text-gray-400" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3searchQueryTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"block w-full pl-9 pr-9 py-2 border border-gray-200 dark:border-zinc-700 rounded-lg bg-gray-50 dark:bg-zinc-800 text-gray-900 dark:text-zinc-100 text-xs focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-all"
Te6edf3placeholderTff7b72=Ta5d6ff"Search all documentation..."
Tb4b4b4@Te6edf3inputTff7b72=Ta5d6ff"Te6edf3debounceSearchTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isSearchingTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 right-0 pr-3 flex items-center"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"loading" Te6edf3classTff7b72=Ta5d6ff"h-3 w-3 text-gray-400 animate-spin" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3searchQueryTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-y-0 right-0 pr-3 flex items-center"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3clearSearchTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"close"
Te6edf3classTff7b72=Ta5d6ff"h-3 w-3 text-gray-400 hover:text-gray-600 dark:hover:text-zinc-200 cursor-pointer"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Progress Bar -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'downloading' Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'extracting'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full h-1 bg-gray-200 dark:bg-zinc-800 overflow-hidden relative"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"bg-blue-500 h-full transition-all duration-300" Tb4b4b4:Te6edf3styleTff7b72=Ta5d6ff"Tb4b4b4{ Te6edf3widthTff7b72: Te6edf3statusTb4b4b4.Te6edf3progress Tff7b72+ Ta5d6ff'%' Tb4b4b4}Ta5d6ff"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3progress Tff7b72=== T79c0ff0 Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'extracting'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 bg-blue-500/30 animate-pulse"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Main Content (Iframe or Search Results) -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 relative bg-white dark:bg-zinc-900 overflow-hidden"Tb4b4b4>
T8b949e<!-- Search Results Overlay -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3searchResultsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0 Tff7b72&& Te6edf3searchQueryTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 z-20 bg-white dark:bg-zinc-900 overflow-y-auto"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"max-w-2xl mx-auto p-6 space-y-6"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between px-2"Tb4b4b4>
Tb4b4b4<Tff7b72h2 Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold text-gray-400 uppercase tracking-widest"Tb4b4b4>Search ResultsTb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold text-blue-500 px-2 py-0.5 bg-blue-50 dark:bg-blue-900/20 rounded-full"
Tb4b4b4>Tff7b72{{ Te6edf3searchResultsTb4b4b4.Te6edf3length Tff7b72}} matchesTb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3result Tff7b72in Te6edf3searchResultsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3resultTb4b4b4.Te6edf3pathTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"group p-4 hover:bg-gray-50 dark:hover:bg-zinc-800/50 rounded-2xl cursor-pointer transition-colors border border-gray-100 dark:border-zinc-800/50 hover:border-blue-200 dark:hover:border-blue-900/30"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3navigateToTb4b4b4(Te6edf3resultTb4b4b4.Te6edf3pathTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start justify-between gap-4"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"font-bold text-sm text-gray-900 dark:text-zinc-100 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors"
Tb4b4b4>
Tff7b72{{ Te6edf3resultTb4b4b4.Te6edf3title Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center space-x-2"Tb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3classTff7b72=Ta5d6ff"px-1.5 py-0.5 rounded bg-gray-100 dark:bg-zinc-800 text-[8px] font-bold text-gray-500 uppercase tracking-tighter"
Tb4b4b4>
Tff7b72{{ Te6edf3resultTb4b4b4.Te6edf3source Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-[9px] text-gray-400 uppercase font-mono mt-0.5 shrink-0"Tb4b4b4>
Tff7b72{{ Te6edf3resultTb4b4b4.Te6edf3pathTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4.Te6edf3popTb4b4b4(Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72p
Te6edf3classTff7b72=Ta5d6ff"mt-1.5 text-xs text-gray-600 dark:text-zinc-400 line-clamp-3 leading-relaxed"
Te6edf3v-htmlTff7b72=Ta5d6ff"Te6edf3highlightMatchTb4b4b4(Te6edf3resultTb4b4b4.Te6edf3snippetTb4b4b4)Ta5d6ff"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- No Results State -->
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3searchQuery Tff7b72&& Tff7b72!Te6edf3isSearching Tff7b72&& Te6edf3searchResultsTb4b4b4.Te6edf3length Tff7b72=== T79c0ff0Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 z-20 bg-white dark:bg-zinc-900 flex flex-col items-center justify-center p-8 text-center"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"w-16 h-16 bg-gray-50 dark:bg-zinc-800/50 rounded-full flex items-center justify-center mb-4"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"text-search" Te6edf3classTff7b72=Ta5d6ff"w-8 h-8 text-gray-300 dark:text-zinc-600" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-sm font-medium text-gray-900 dark:text-zinc-100"Tb4b4b4>No results foundTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-zinc-400 mt-1"Tb4b4b4>Try different keywords or check spelling.Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"mt-4 text-xs font-bold text-blue-500 hover:text-blue-600 transition-colors"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3clearSearchTa5d6ff"
Tb4b4b4>
Clear Search
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3last_errorTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 z-10 flex items-center justify-center p-6 bg-white/90 dark:bg-zinc-900/90 backdrop-blur-sm"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"max-w-md w-full p-6 bg-red-50 dark:bg-red-900/20 border border-red-100 dark:border-red-900/30 rounded-2xl text-red-600 dark:text-red-400 text-center shadow-xl"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"alert-circle-outline" Te6edf3classTff7b72=Ta5d6ff"w-12 h-12 mx-auto mb-3" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-lg font-bold mb-2"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"docs.error"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm opacity-80"Tb4b4b4>Tff7b72{{ Te6edf3statusTb4b4b4.Te6edf3last_error Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-col gap-4 mt-6"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"px-6 py-2.5 bg-red-600 text-white rounded-xl text-xs font-bold hover:bg-red-700 transition-colors shadow-lg"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3updateDocsTa5d6ff"
Tb4b4b4>
Retry Download
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative py-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 flex items-center" Te6edf3aria-hiddenTff7b72=Ta5d6ff"true"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"w-full border-t border-red-200 dark:border-red-900/50"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative flex justify-center text-[10px] uppercase font-bold"Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"bg-red-50 dark:bg-zinc-900 px-2 text-red-400"
Tb4b4b4>or use alternate sourceTb4b4b4<Tb4b4b4/Tff7b72span
Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3alternateDocsUrlTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Te6edf3classTff7b72=Ta5d6ff"w-full px-4 py-2.5 bg-white dark:bg-zinc-800 border border-red-200 dark:border-red-900/50 rounded-xl text-xs focus:outline-none focus:ring-2 focus:ring-red-500/20 text-gray-900 dark:text-zinc-100"
Te6edf3placeholderTff7b72=Ta5d6ff"https://mirror.example.com/reticulum_docs.zip"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"w-full px-6 py-2.5 bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 rounded-xl text-xs font-bold hover:opacity-90 transition-opacity disabled:opacity-50"
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Tff7b72!Te6edf3alternateDocsUrlTa5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3addAndRetryDocsTa5d6ff"
Tb4b4b4>
Add Source & Retry
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72RouterLink
Tb4b4b4:Te6edf3toTff7b72=Ta5d6ff"Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff'settings' Tb4b4b4}Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold text-red-500/60 hover:text-red-500 uppercase tracking-widest transition-colors"
Tb4b4b4>
Manage all sources in settings
Tb4b4b4<Tb4b4b4/Tff7b72RouterLinkTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'downloading' Tff7b72|| Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'extracting'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 z-10 flex flex-col items-center justify-center bg-white/80 dark:bg-zinc-900/80 backdrop-blur-md"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"relative w-24 h-24 mb-6"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 border-4 border-blue-100 dark:border-blue-900/30 rounded-full"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 border-4 border-blue-600 rounded-full transition-all duration-300"
Tb4b4b4:Te6edf3styleTff7b72=Ta5d6ff"Tb4b4b4{ Te6edf3clipPathTff7b72: Ta5d6ff`Ta5d6ffinset(0 0 0 0)Ta5d6ff`Tb4b4b4, Te6edf3transformTff7b72: Ta5d6ff`Ta5d6ffrotate(Tffd700${Te6edf3statusTb4b4b4.Te6edf3progress Tff7b72* T79c0ff3.6Tffd700}Ta5d6ffdeg)Ta5d6ff` Tb4b4b4}Ta5d6ff"
Te6edf3styleTff7b72=Ta5d6ff"border-color: transparent; border-top-color: currentColor"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"absolute inset-0 flex items-center justify-center"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"
Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff'downloading' Tff7b72? Ta5d6ff'cloud-download-outline' Tff7b72: Ta5d6ff'folder-zip-outline'
Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-10 h-10 text-blue-600 animate-bounce"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-lg font-bold text-gray-900 dark:text-zinc-100 mb-1"Tb4b4b4>
Tff7b72{{
Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff"downloading" Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"docs.status_downloading"Tb4b4b4) Tff7b72: Ta5d6ff"Extracting Documentation..."
Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-500 dark:text-zinc-400"Tb4b4b4>Tff7b72{{ Te6edf3statusTb4b4b4.Te6edf3progress Tff7b72}}% CompleteTb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-[10px] text-gray-400 mt-8 uppercase tracking-widest animate-pulse"Tb4b4b4>
Please wait, setting up offline manual
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- MeshChatX Docs View -->
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72=== Ta5d6ff'meshchatx' Tff7b72&& Tff7b72!Te6edf3searchQueryTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"flex h-full overflow-hidden"Tb4b4b4>
T8b949e<!-- Doc Sidebar (mobile hidden) -->
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"hidden md:flex flex-col w-64 border-r border-gray-200 dark:border-zinc-800 bg-gray-50/50 dark:bg-zinc-900/50"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"p-4 border-b border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold text-gray-400 uppercase tracking-widest"Tb4b4b4>MeshChatX DocsTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto p-2 space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3doc Tff7b72in Te6edf3meshchatxDocsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3docTb4b4b4.Te6edf3pathTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full text-left px-3 py-2 rounded-xl text-xs transition-all flex items-center space-x-3"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3selectedDocPath Tff7b72=== Te6edf3docTb4b4b4.Te6edf3path
Tff7b72? Ta5d6ff'bg-blue-50 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400 font-bold shadow-sm'
Tff7b72: Ta5d6ff'text-gray-600 dark:text-zinc-400 hover:bg-white dark:hover:bg-zinc-800'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3selectDocTb4b4b4(Te6edf3docTb4b4b4.Te6edf3pathTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Tb4b4b4:Te6edf3icon-nameTff7b72=Ta5d6ff"Te6edf3docTb4b4b4.Te6edf3type Tff7b72=== Ta5d6ff'markdown' Tff7b72? Ta5d6ff'language-markdown' Tff7b72: Ta5d6ff'file-document-outline'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-4 h-4"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"truncate"Tb4b4b4>Tff7b72{{ Tb4b4b4(Te6edf3docTb4b4b4.Te6edf3name Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\.(md|txt)$/Tb4b4b4, Ta5d6ff""Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Doc Content -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 flex flex-col bg-white dark:bg-zinc-900 overflow-hidden relative"Tb4b4b4>
T8b949e<!-- Mobile Selector -->
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"md:hidden p-3 border-b border-gray-200 dark:border-zinc-800"Tb4b4b4>
Tb4b4b4<Tff7b72select
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3selectedDocPathTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full bg-gray-50 dark:bg-zinc-800 border-none rounded-lg text-xs font-bold p-2"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3selectDocTb4b4b4(Te6edf3selectedDocPathTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72option Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3doc Tff7b72in Te6edf3meshchatxDocsTa5d6ff" Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3docTb4b4b4.Te6edf3pathTa5d6ff" Tb4b4b4:Te6edf3valueTff7b72=Ta5d6ff"Te6edf3docTb4b4b4.Te6edf3pathTa5d6ff"Tb4b4b4>
Tff7b72{{ Tb4b4b4(Te6edf3docTb4b4b4.Te6edf3name Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\.(md|txt)$/Tb4b4b4, Ta5d6ff""Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72optionTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72selectTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3selectedDocContentTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto p-6 md:p-10 scroll-smooth"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"max-w-3xl mx-auto"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"max-w-none break-words" Te6edf3v-htmlTff7b72=Ta5d6ff"Te6edf3selectedDocContentTb4b4b4.Te6edf3htmlTa5d6ff"Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3meshchatxDocsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex-1 flex flex-col items-center justify-center p-8 text-center opacity-50"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"book-open-outline" Te6edf3classTff7b72=Ta5d6ff"w-12 h-12 mb-4 text-gray-300" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-sm font-bold"Tb4b4b4>Select a document to readTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"flex-1 flex flex-col items-center justify-center p-8 text-center opacity-50"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"alert-circle-outline" Te6edf3classTff7b72=Ta5d6ff"w-12 h-12 mb-4 text-gray-300" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-sm font-bold"Tb4b4b4>No MeshChatX docs foundTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-xs mt-1"Tb4b4b4>Place .md or .txt files in your docs folder.Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
T8b949e<!-- Reticulum Docs View -->
Tb4b4b4<Tff7b72iframe
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3activeTab Tff7b72=== Ta5d6ff'reticulum' Tff7b72&& Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72&& Tff7b72!Te6edf3searchQueryTa5d6ff"
Te6edf3refTff7b72=Ta5d6ff"docsFrame"
Tb4b4b4:Te6edf3srcTff7b72=Ta5d6ff"Te6edf3localDocsUrlTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full h-full border-none opacity-0 transition-opacity duration-1000"
Tb4b4b4@Te6edf3loadTff7b72=Ta5d6ff"Te6edf3$elTb4b4b4.Te6edf3querySelectorTb4b4b4(Ta5d6ff'iframe'Tb4b4b4)Tb4b4b4.Te6edf3styleTb4b4b4.Te6edf3opacity Tff7b72= Ta5d6ff'1'Ta5d6ff"
Tb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72iframeTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-else-ifTff7b72=Ta5d6ff"Te6edf3statusTb4b4b4.Te6edf3status Tff7b72!== Ta5d6ff'downloading' Tff7b72&& Te6edf3statusTb4b4b4.Te6edf3status Tff7b72!== Ta5d6ff'extracting'Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"h-full flex flex-col items-center justify-center p-8 text-center space-y-4"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"w-16 h-16 bg-gray-50 dark:bg-zinc-800/50 rounded-full flex items-center justify-center"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"book-outline" Te6edf3classTff7b72=Ta5d6ff"w-8 h-8 text-gray-300 dark:text-zinc-600" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h3 Te6edf3classTff7b72=Ta5d6ff"text-sm font-medium text-gray-900 dark:text-zinc-100"Tb4b4b4>Reticulum ManualTb4b4b4<Tb4b4b4/Tff7b72h3Tb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3classTff7b72=Ta5d6ff"text-xs text-gray-500 dark:text-zinc-400 mt-1 max-w-[200px]"Tb4b4b4>
Download the official documentation for offline access.
Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3classTff7b72=Ta5d6ff"px-6 py-2 bg-blue-600 text-white rounded-full text-xs font-bold hover:bg-blue-700 transition-colors shadow-lg shadow-blue-500/20"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3updateDocsTa5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"docs.btn_download"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;
Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3componentsTff7b72: Tb4b4b4{
Te6edf3MaterialDesignIconTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3statusTff7b72: Tb4b4b4{
Te6edf3statusTff7b72: Ta5d6ff"idle"Tb4b4b4,
Te6edf3progressTff7b72: T79c0ff0Tb4b4b4,
Te6edf3last_errorTff7b72: Tff7b72nullTb4b4b4,
Te6edf3has_docsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3has_meshchatx_docsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3versionsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3current_versionTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3statusIntervalTff7b72: Tff7b72nullTb4b4b4,
Te6edf3showLanguagesTff7b72: Tff7b72falseTb4b4b4,
Te6edf3showVersionsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3searchQueryTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3searchResultsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3isSearchingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3searchTimeoutTff7b72: Tff7b72nullTb4b4b4,
Te6edf3activeTabTff7b72: Ta5d6ff"meshchatx"Tb4b4b4,
Te6edf3meshchatxDocsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3selectedDocPathTff7b72: Tff7b72nullTb4b4b4,
Te6edf3selectedDocContentTff7b72: Tff7b72nullTb4b4b4,
Te6edf3alternateDocsUrlTff7b72: Ta5d6ff""Tb4b4b4,
Te6edf3languagesTff7b72: Tb4b4b4{
Te6edf3enTff7b72: Ta5d6ff"English"Tb4b4b4,
Te6edf3deTff7b72: Ta5d6ff"Deutsch"Tb4b4b4,
Te6edf3esTff7b72: Ta5d6ff"Español"Tb4b4b4,
Te6edf3jpTff7b72: Ta5d6ff"日本語"Tb4b4b4,
Te6edf3nlTff7b72: Ta5d6ff"Nederlands"Tb4b4b4,
Te6edf3plTff7b72: Ta5d6ff"Polski"Tb4b4b4,
Ta5d6ff"pt-br"Tff7b72: Ta5d6ff"Português"Tb4b4b4,
Te6edf3trTff7b72: Ta5d6ff"Türkçe"Tb4b4b4,
Te6edf3ukTff7b72: Ta5d6ff"Українська"Tb4b4b4,
Ta5d6ff"zh-cn"Tff7b72: Ta5d6ff"简体中文"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3currentLangTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3$i18nTb4b4b4.Te6edf3localeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3localDocsUrlTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3lang Tff7b72= Tff7b72thisTb4b4b4.Te6edf3currentLangTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3lang Tff7b72=== Ta5d6ff"en"Tb4b4b4) Tff7b72return Ta5d6ff"/reticulum-docs/index.html"Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3languagesTb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Te6edf3langTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff`Ta5d6ff/reticulum-docs/index_Tffd700${Te6edf3langTffd700}Ta5d6ff.htmlTa5d6ff`Tb4b4b4;
Tb4b4b4}
Tff7b72return Ta5d6ff"/reticulum-docs/index.html"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3allLanguagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657ObjectTb4b4b4.Te6edf3entriesTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3languagesTb4b4b4)Tb4b4b4.Te6edf3mapTb4b4b4(Tb4b4b4(Tb4b4b4[Te6edf3codeTb4b4b4, Te6edf3nameTb4b4b4]Tb4b4b4) Tb4b4b4=> Tb4b4b4(Tb4b4b4{
Te6edf3codeTb4b4b4,
Te6edf3nameTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3otherLanguagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3has_docsTb4b4b4) Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3allLanguagesTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3lTb4b4b4) Tb4b4b4=> Te6edf3lTb4b4b4.Te6edf3code Tff7b72!== Tff7b72thisTb4b4b4.Te6edf3currentLangTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3fetchStatusTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fetchMeshChatXDocsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3statusInterval Tff7b72= Te6edf3setIntervalTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3fetchStatusTb4b4b4, T79c0ff2000Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3statusIntervalTb4b4b4) Tb4b4b4{
Te6edf3clearIntervalTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3statusIntervalTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Tff7b72async Te6edf3fetchStatusTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/docs/status"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3status Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4;
T8b949e// Auto-download Reticulum docs if missing and we're not already doing something
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3status Tff7b72=== Ta5d6ff"idle" Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3last_errorTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3updateDocsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// If we don't have Reticulum docs but have MeshChatX docs, default to MeshChatX tab
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3has_meshchatx_docs Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"reticulum"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72= Ta5d6ff"meshchatx"Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3has_docs Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3statusTb4b4b4.Te6edf3has_meshchatx_docs Tff7b72&& Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"meshchatx"Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72= Ta5d6ff"reticulum"Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch docs status:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3fetchMeshChatXDocsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/meshchatx-docs/list"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3meshchatxDocs Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3meshchatxDocsTb4b4b4.Te6edf3length Tff7b72> T79c0ff0 Tff7b72&& Tff7b72!Tff7b72thisTb4b4b4.Te6edf3selectedDocPathTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectDocTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3meshchatxDocsTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4.Te6edf3pathTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch MeshChatX docs list:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3selectDocTb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedDocPath Tff7b72= Te6edf3pathTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/meshchatx-docs/content"Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{ Te6edf3path Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3selectedDocContent Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to fetch doc content:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3selectedDocContent Tff7b72= Tb4b4b4{
Te6edf3htmlTff7b72: Ta5d6ff'<div class="text-red-500 font-bold">Failed to load document.</div>'Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3updateDocsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/docs/update"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fetchStatusTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to trigger docs update:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3addAndRetryDocsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3alternateDocsUrlTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72try Tb4b4b4{
T8b949e// Get current config
Tff7b72const Te6edf3configResponse Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3currentUrls Tff7b72= Te6edf3configResponseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3configTb4b4b4.Te6edf3docs_download_urls Tff7b72|| Ta5d6ff""Tb4b4b4;
Tff7b72const Te6edf3newUrls Tff7b72= Te6edf3currentUrls Tff7b72? Ta5d6ff`Tffd700${Te6edf3currentUrlsTffd700}Ta5d6ff,Tffd700${Tff7b72thisTb4b4b4.Te6edf3alternateDocsUrlTffd700}Ta5d6ff` Tff7b72: Tff7b72thisTb4b4b4.Te6edf3alternateDocsUrlTb4b4b4;
T8b949e// Update config
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Tb4b4b4{
Te6edf3docs_download_urlsTff7b72: Te6edf3newUrlsTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// Clear input and retry
Tff7b72thisTb4b4b4.Te6edf3alternateDocsUrl Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3updateDocsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to add alternate source:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"docs.failed_update_docs"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3switchVersionTb4b4b4(Te6edf3versionTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff"/api/v1/docs/switch"Tb4b4b4, Tb4b4b4{ Te6edf3version Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3showVersions Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fetchStatusTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// reload iframe if in reticulum tab
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72=== Ta5d6ff"reticulum"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3iframe Tff7b72= Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3docsIframeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3iframeTb4b4b4) Tb4b4b4{
Te6edf3iframeTb4b4b4.Te6edf3contentWindowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3reloadTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to switch docs version:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3handleZipUploadTb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3file Tff7b72= Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3filesTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3fileTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3version Tff7b72= Te6edf3promptTb4b4b4(Ta5d6ff"Enter version name for this upload:"Tb4b4b4, Ta5d6ff`Ta5d6ffupload-Tffd700${Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3versionTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3formData Tff7b72= Tff7b72new Te6edf3FormDataTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3formDataTb4b4b4.Te6edf3appendTb4b4b4(Ta5d6ff"file"Tb4b4b4, Te6edf3fileTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/docs/upload?version=Tffd700${Tffa657encodeURIComponentTb4b4b4(Te6edf3versionTb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4, Te6edf3formDataTb4b4b4, Tb4b4b4{
Te6edf3headersTff7b72: Tb4b4b4{
Ta5d6ff"Content-Type"Tff7b72: Ta5d6ff"multipart/form-data"Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fetchStatusTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to upload docs zip:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Te6edf3alertTb4b4b4(Ta5d6ff"Failed to upload docs zip: " Tff7b72+ Tb4b4b4(Te6edf3errorTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3error Tff7b72|| Te6edf3errorTb4b4b4.Te6edf3messageTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3exportDocsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tffa657windowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3href Tff7b72= Ta5d6ff"/api/v1/docs/export"Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3copyDocLinkTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3selectedDocPathTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3htmlPath Tff7b72= Tff7b72thisTb4b4b4.Te6edf3selectedDocPathTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\.(md|txt)$/Tb4b4b4, Ta5d6ff".html"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3url Tff7b72= Ta5d6ff`Tffd700${Tffa657windowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3originTffd700}Ta5d6ff/meshchatx-docs/Tffd700${Te6edf3htmlPathTffd700}Ta5d6ff`Tb4b4b4;
Te6edf3navigatorTb4b4b4.Te6edf3clipboard
Tb4b4b4.Te6edf3writeTextTb4b4b4(Te6edf3urlTb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"docs.docs_link_copied"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Tff7b72catchTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"docs.failed_copy_link"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3setLanguageTb4b4b4(Te6edf3langCodeTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3showLanguages Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3patchTb4b4b4(Ta5d6ff"/api/v1/config"Tb4b4b4, Tb4b4b4{
Te6edf3languageTff7b72: Te6edf3langCodeTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// The app will update automatically via websocket config sync
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Failed to update language:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3debounceSearchTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3searchTimeoutTb4b4b4) Te6edf3clearTimeoutTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3searchTimeoutTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3searchResults Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3searchTimeout Tff7b72= Te6edf3setTimeoutTb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3performSearchTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff400Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3performSearchTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isSearching Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3axiosTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff"/api/v1/docs/search"Tb4b4b4, Tb4b4b4{
Te6edf3paramsTff7b72: Tb4b4b4{
Te6edf3qTff7b72: Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4,
Te6edf3langTff7b72: Tff7b72thisTb4b4b4.Te6edf3currentLangTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3searchResults Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTb4b4b4.Te6edf3resultsTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errorTb4b4b4) Tb4b4b4{
Te6edf3consoleTb4b4b4.Te6edf3errorTb4b4b4(Ta5d6ff"Search failed:"Tb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isSearching Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3clearSearchTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3searchQuery Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3searchResults Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3navigateToTb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3pathTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"/meshchatx-docs/"Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72= Ta5d6ff"meshchatx"Tb4b4b4;
Tff7b72const Te6edf3docPath Tff7b72= Te6edf3pathTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"/meshchatx-docs/"Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3selectDocTb4b4b4(Te6edf3docPathTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3activeTab Tff7b72= Ta5d6ff"reticulum"Tb4b4b4;
Tff7b72const Te6edf3cleanPath Tff7b72= Te6edf3pathTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff"/reticulum-docs/"Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3iframe Tff7b72= Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3docsFrameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3iframeTb4b4b4) Tb4b4b4{
Te6edf3iframeTb4b4b4.Te6edf3src Tff7b72= Ta5d6ff`Ta5d6ff/reticulum-docs/Tffd700${Te6edf3cleanPathTffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3clearSearchTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3highlightMatchTb4b4b4(Te6edf3textTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4) Tff7b72return Te6edf3textTb4b4b4;
T8b949e// Escape HTML entities in text to prevent XSS
Tff7b72const Te6edf3escapedText Tff7b72= Te6edf3text
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/&/gTb4b4b4, Ta5d6ff"&"Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/</gTb4b4b4, Ta5d6ff"<"Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/>/gTb4b4b4, Ta5d6ff">"Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/"/gTb4b4b4, Ta5d6ff"""Tb4b4b4)
Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/'/gTb4b4b4, Ta5d6ff"'"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3query Tff7b72= Tff7b72thisTb4b4b4.Te6edf3searchQueryTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/[.*+?^${}()|[\]\\]/gTb4b4b4, Ta5d6ff"\\$&"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3regex Tff7b72= Tff7b72new Tffa657RegExpTb4b4b4(Ta5d6ff`Ta5d6ff(Tffd700${Te6edf3queryTffd700}Ta5d6ff)Ta5d6ff`Tb4b4b4, Ta5d6ff"gi"Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3escapedTextTb4b4b4.Te6edf3replaceTb4b4b4(
Te6edf3regexTb4b4b4,
Ta5d6ff'<span class="bg-blue-100 dark:bg-blue-900/40 text-blue-700 dark:text-blue-300 px-0.5 rounded">$1</span>'
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>
Tb4b4b4<Tff7b72style Te6edf3scopedTb4b4b4>
T8b949e/* Ensure the iframe fills the container and respects dark mode if possible */
Tff7b72iframe Tb4b4b4{
Tff7b72color-schemeTb4b4b4: Te6edf3light Te6edf3darkTb4b4b4;
Tb4b4b4}
T8b949e/* Markdown styling for the rendered HTML */
Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72pre Tb4b4b4{
Tff7b72colorTb4b4b4: T79c0ff#f4f4f5 Tff7b72!importantTb4b4b4; T8b949e/* zinc-100 */
Tb4b4b4}
Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72pre Tff7b72code Tb4b4b4{
Tff7b72colorTb4b4b4: Tff7b72inherit Tff7b72!importantTb4b4b4;
Tb4b4b4}
Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72code Tb4b4b4{
Tff7b72font-familyTb4b4b4: Te6edf3ui-monospaceTb4b4b4, Te6edf3SFMono-RegularTb4b4b4, Te6edf3MenloTb4b4b4, Te6edf3MonacoTb4b4b4, Te6edf3ConsolasTb4b4b4, Ta5d6ff"Liberation Mono"Tb4b4b4, Ta5d6ff"Courier New"Tb4b4b4, Tff7b72monospaceTb4b4b4;
Tb4b4b4}
Tb4b4b4.T56d364dark Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72p Tb4b4b4{
Tff7b72colorTb4b4b4: T79c0ff#e4e4e7Tb4b4b4; T8b949e/* zinc-200 */
Tb4b4b4}
Tb4b4b4.T56d364dark Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72h1Tff7b72,
Tb4b4b4.T56d364dark Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72h2Tff7b72,
Tb4b4b4.T56d364dark Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72h3Tff7b72,
Tb4b4b4.T56d364dark Tb4b4b4:Tf0883edeepTff7b72(Tb4b4b4.T56d364max-w-noneTff7b72) Tff7b72h4 Tb4b4b4{
Tff7b72colorTb4b4b4: T79c0ff#f4f4f5Tb4b4b4; T8b949e/* zinc-100 */
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────